package com.sumainfor.zuul.service.impl;

import com.baomidou.mybatisplus.plugins.Page;
import com.sumainfor.zuul.dao.RunProviderMapper;
import com.sumainfor.zuul.service.RunProviderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 * @Author Eddy·Chen
 * @Email 835033913@qq.com
 * @Create 2019-03-08 11:35
 * 运营服务提供者
 */
@Service
public class RunProviderImpl implements RunProviderService {

    @Autowired
    private RunProviderMapper runProviderMapper;


    /**
     * 获取所有的公司数据列表
     *
     * @param page
     * @return
     */
    @Override
    public Page<Map<String, Object>> selectGosList(Page page) {
        return page.setRecords(runProviderMapper.selectGosList(page));
    }

    /**
     * 获得所有的城市数据
     *
     * @return
     */
    @Override
    public Page<Map<String, Object>> getCityListAll(Page page) {
        return page.setRecords(runProviderMapper.selectCityList(page));
    }

    /**
     * 获得所有的服务中心数据
     *
     * @param page
     * @param cityId 城市编号
     * @return
     */
    @Override
    public Page<Map<String, Object>> getCenterByCityId(Page page, String cityId) {
        return page.setRecords(runProviderMapper.selectCenterListByCityId(page, cityId));
    }


    /**
     * 获得归属中心的所在城市名称
     *
     * @param deptId
     * @return
     */
    @Override
    public Map<String, Object> getCenterCityNameByDeptId(String deptId) {
        return runProviderMapper.getCenterCityName(deptId);
    }


    /**
     * 获得 1.公司  2.城市  3.服务中心
     *
     * @param id   要查询的id
     * @param type 要查询的类型
     * @return
     */
    @Override
    public Map<String, Object> getDataByTypeAndId(String id, Integer type) {
        Map<String, Object> data = null;
        //1.公司  2.城市  3.服务中心
        switch (type) {
            case 1:
                data = runProviderMapper.getGonsAndCity(id);
                break;
            case 2:
                data = runProviderMapper.getGonsAndCity(id);
                break;
            case 3:
                data = runProviderMapper.getCenterSererById(id);
                break;
        }
        return data;
    }


    /**
     * 根据服务中心编号获取服务中心数据
     *
     * @return
     */
    @Override
    public List<Map<String, Object>> getRecycleServiceCenter(List<String> ids) {
        return runProviderMapper.getRecycleServiceCenter(ids);
    }

    /**
     * 根据归属区域编号查询归属区域信息数据
     *
     * @param areaId
     * @return
     */
    @Override
    public Map<String, Object> getAreaInfoById(Integer areaId) {
        return runProviderMapper.getAreaInfoById(areaId);
    }

}
